<?php
/** 
* 留言板控制器文件
* 
* 留言板视图和数据的获取
* @author      sinalma  <sinalma@foxmail.com>
* @version     1.0 版本号
*/ 

namespace app\index\controller;

use think\Controller;
use think\View;
use app\index\model\Message as MessageModel;
use app\common\tools\Pagintor;
use think\Session;

/** 
 * Class Message
 * 留言控制器 
 *
 * @package app\index\controller
 * @method array getMetas(string $table) static 获取所有 分类/标签
 * @author      sinalma  <sinalma@foxmail.com>
 * @version     1.0 版本号
 */ 
class Message extends Controller
{
    public function addAllUID(){
        $um = new MessageModel();
        $res = $um->query("SELECT user_name from sinblog_messages");
        for ($i=0;$i<count($res);++$i){

            $name = $res[$i]['user_name'];
        $user = $um->query("SELECT uid from sinblog_user_list where user_name='{$name}'");
        if (count($user) <= 0) continue;
        $uid = $user[0]['uid'];
            $um->query("UPDATE sinblog_messages set uid='{$uid}' where user_name='{$name}'");
        }
    }


    /**  
     * 留言模块
     * 获取一页留言，需要参数page，如不传，默认为1
     * by @sinalma 2018.07.29
     * 
     * @access public 
     */        	
	public function getMessages(){
		// $id = input('param.page');
        // 实例化文章模型
        $msgObj = new MessageModel();
        // 获取总留言数
        $msgCount = $msgObj->getCount();
        // 实例化分页对象
        $pageObj = new Pagintor($msgCount,10);
        // 获取当前页limit限制语句
        $limitStr = $pageObj->limit;
        // 获取html数据
        $msgHtml = $msgObj->getMessages($limitStr,10);
        $pageHtml = $pageObj->fMsgPage();
        $msgHtml .= $pageHtml;
        return $msgHtml;
	}


    /**  
     * 请求是否可以评论留言
     *
     * @access public 
     * @return bool      
     */  
    public function requestCmt(){
        if (Session::get('user')) {
            return true;
        }else{
            return false;
        }
    }

    /**  
     * 添加留言的回复
     *
     * @access public 
     * @param mid POST方式传入  回复的留言或评论的mid  
     * @param text POST方式传入  留言内容 
     * @param isTopCmt POST方式传入  是否是顶级评论 
     * @param cmt_name POST方式传入  如果评论的是留言下的某条评论,则传入的是留言的用户名 
     * @param parent_id POST方式传入  如果评论的是留言下的某条评论,则传入的是留言的mid
     * @return bool      
     */  
    public function addMsgCmt(){
        $mid = input('param.mid');
        $text = input("param.text");
        $uid = Session::get('user')['uid'];
        $username = Session::get('user')['user_name'];
        $isTopCmt = input('param.isTopCmt');
        $data = ['isTopCmt'=>$isTopCmt,'mid'=>$mid,'text'=>$text,'uid'=>$uid,'username'=>$username];
        if (!$isTopCmt){
            $data['cmt_name'] = input("param.cmt_name");
            $data['parent_id'] = input("param.parent_id");
        }

        if(!$username) return null;
        $msgObj = new MessageModel();
        $res = $msgObj->addMsgCmt($data);
        return $res;
    }

    /**  
     * 留言模块
     * 添加留言，需要参数text
     * by @sinalma 2018.07.29
     * 
     * @access public 
     */   
    public function addMsg(){
        $text = input("param.text");
        $uid = Session::get('user')['uid'];
        $username = Session::get('user')['user_name'];
        $msgObj = new MessageModel();
        $msgObj->addMsg($uid,$username,$text);
        return "successful";
    }
}